// utils/rewardAd.js

let videoAd = null;
let isLoaded = false;
// let adUnitId = 'adunit-80e3980e8bba9fa8'; // ⚠️ 这里填你自己的广告位 ID

/**
 * 初始化激励视频广告
 */
function initRewardAd(adUnitId,onCloseCallback) {
  if (!wx.createRewardedVideoAd) {
    console.warn('当前微信版本不支持激励视频广告');
    return;
  }

  if (!videoAd) {
    videoAd = wx.createRewardedVideoAd({ adUnitId });

    videoAd.onLoad(() => {
      console.log('[RewardAd] 广告加载成功');
      isLoaded = true;
    });

    videoAd.onError((err) => {
      console.error('[RewardAd] 广告加载失败', err);
      isLoaded = false;
    });

    videoAd.onClose((res) => {
      if (res && res.isEnded) {
        console.log('[RewardAd] 用户完整观看视频');
        typeof onCloseCallback === 'function' && onCloseCallback(true);
      } else {
        console.log('[RewardAd] 用户未完整观看视频');
        typeof onCloseCallback === 'function' && onCloseCallback(false);
      }
    });
  }
}

/**
 * 展示激励视频广告
 */
function showRewardAd(onCloseCallback) {
  if (!videoAd) {
    console.warn('[RewardAd] 广告未初始化，请先调用 initRewardAd()');
    wx.showToast({ title: '广告初始化中', icon: 'none' });
    return;
  }

  videoAd
    .show()
    .catch(() => {
      console.warn('[RewardAd] 首次展示失败，尝试重新加载');
      return videoAd.load().then(() => videoAd.show());
    })
    .catch((err) => {
      console.error('[RewardAd] 广告展示失败', err);
      wx.showToast({ title: '广告加载失败', icon: 'none' });
    });
}

module.exports = {
  initRewardAd,
  showRewardAd
};
